Drop some redundant cairo_save calls
authorMatthias Clasen <mclasen@redhat.com>
Mon, 28 Sep 2015 19:08:26 +0000 (15:08 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 29 Sep 2015 13:43:42 +0000 (09:43 -0400)
Almost all callers of _gtk_widget_draw already did their own
cairo_save/restore, so drop the save/restore calls inside
_gtk_widget_draw and instead fix the last caller, gtk_widget_draw,
to do the same.

gtk/gtkwidget.c

index 050bbfe7ccbc673fc38070a866c4c62c6bfb4fb1..ab5f461e01e1b1510af110e3f172151f99be14dc 100644 (file)
@@ -6990,8 +6990,6 @@ _gtk_widget_draw (GtkWidget *widget,
    * the window hierarchy.
    */
 
-  cairo_save (cr);
-
   push_group =
     widget->priv->alpha != 255 &&
     (!_gtk_widget_is_toplevel (widget) ||
@@ -7049,8 +7047,6 @@ _gtk_widget_draw (GtkWidget *widget,
       cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
       cairo_paint_with_alpha (cr, widget->priv->alpha / 255.0);
     }
-
-  cairo_restore (cr);
 }
 
 
@@ -7088,7 +7084,9 @@ gtk_widget_draw (GtkWidget *widget,
   g_return_if_fail (!widget->priv->alloc_needed);
   g_return_if_fail (cr != NULL);
 
+  cairo_save (cr);
   _gtk_widget_draw (widget, cr);
+  cairo_restore (cr);
 }
 
 static gboolean